App({

  // 定义一个全区对象用于保存一些设备及胶囊的数据, 在其他页面onLoad之后可以通过
  // const App = getApp()， App.globalData. 的方式访问到
  // 数据都是根据当前机型进行计算，这样的方式兼容大部分机器
  globalData: {
    
  },

  /**
   * 当小程序初始化完成时，会触发 onLaunch（全局只触发一次）
   */
  onLaunch: function () {
    // http://www.ay1.cc/article/1672837014442779899.html
    /**
     * 通过这些信息我们可以计算出上面说的3个值：
     * 1. 整个导航栏高度 = statausBarHeight + height + (top-statausBarHeight )*2
     * 2. 胶囊按钮与顶部的距离 = top
     * 3. 胶囊按钮与右侧的距离 = windowWidth - right
     */
    // 获取胶囊信息
    let menuButtonObject = wx.getMenuButtonBoundingClientRect()

    // 获取设备信息
    wx.getSystemInfo({
      success: res => {
        // 整个导航栏的高度
        let navHeight = menuButtonObject.top + menuButtonObject.height + (menuButtonObject.top - res.statusBarHeight)*2
        // 导航栏的高度
        let nav = navHeight - res.statusBarHeight


        // 挂载到全区变量 globalData 上
        // 整个导航栏的高度
        this.globalData.navHeight = navHeight
        // 导航栏的高度
        this.globalData.nav = nav
        // // 状态栏高度
        this.globalData.statusBarHeight = res.statusBarHeight
        // 胶囊与左边的距离
        this.globalData.menuLeft = menuButtonObject.left
        // 胶囊的高度
        this.globalData.menuHeight = menuButtonObject.height
        // 胶囊距离顶部的高度
        this.globalData.menuBotton = menuButtonObject.top - res.statusBarHeight
        // 整个设备的宽度
        this.globalData.windowWidth = res.windowWidth
      }
    })
},

/**
 * 当小程序启动，或从后台进入前台显示，会触发 onShow
 */
onShow: function (options) {

},

/**
 * 当小程序从前台进入后台，会触发 onHide
 */
onHide: function () {

},

/**
 * 当小程序发生脚本错误，或者 api 调用失败时，会触发 onError 并带上错误信息
 */
onError: function (msg) {

}
})